package model

import (
	"encoding/json"
	"time"
)

// 玩家信息表
type GlobalPlayer struct {
	// 玩家Id
	Id string

	// 玩家服务器组id即合服之后的组id
	ServerGroupId int32

	// 合作商Id
	PartnerId int32

	// 服务器Id
	ServerId int32

	// 服务器名称
	ServerName string

	// 名称
	Name string

	// 工会Id
	GuildId string

	// 工会名称
	GuildName string

	// 等级
	Lv int32

	// Vip等级
	Vip int32

	// 战力值
	Fap int64

	// 最高战力值
	MaxFap int64

	// 头像
	HeadImageId int32

	// 时装id
	FashionModelId int32

	// 洗髓等级
	FashionLevel int32

	// 旗帜信息
	Flag string

	// 旗帜logo
	Logo string

	// 其他基础信息
	BaseInfo string

	// 玩家信息
	ClientPlayerStr string

	// 活跃时间
	ActiveTime time.Time
}

// NewGlobalPlayer 新建GlobalPlayer对象
// _ID: 玩家Id
// _serverGroupId:玩家服务器组id即合服之后的组id
// _partnerId: 合作商Id
// _serverId: 服务器Id
// _serverName: 服务器名称
// _name: 名称
// _guildId: 工会Id
// _guildName: 工会名称
// _lv: 等级
// _vip: Vip等级
// _fap: 战力值
// _maxFap: 最高战力值
// _headImageId: 头像
// _fashionModelId: 时装id
// _fashionLevel: 洗髓等级
// _flag: 旗帜信息
// _logo: 旗帜logo
// _baseInfo: 其他基础信息
// _clientPlayerStr
// _activeTime: 活跃时间
// 返回值:
// *GlobalPlayer:GlobalPlayer对象
func NewGlobalPlayer(_ID string, _serverGroupId, _partnerId int32, _serverId int32, _serverName string, _name string, _guildId string, _guildName string, _lv int32, _vip int32, _fap, _maxFap int64, _headImageId int32, _fashionModelId int32, _fashionLevel int32, _flag string, _logo string, _baseInfo, _clientPlayerStr string, _activeTime time.Time) *GlobalPlayer {
	return &GlobalPlayer{
		Id:              _ID,
		ServerGroupId:   _serverGroupId,
		PartnerId:       _partnerId,
		ServerId:        _serverId,
		ServerName:      _serverName,
		Name:            _name,
		GuildId:         _guildId,
		GuildName:       _guildName,
		Lv:              _lv,
		Vip:             _vip,
		Fap:             _fap,
		MaxFap:          _maxFap,
		HeadImageId:     _headImageId,
		FashionModelId:  _fashionModelId,
		FashionLevel:    _fashionLevel,
		Flag:            _flag,
		Logo:            _logo,
		BaseInfo:        _baseInfo,
		ClientPlayerStr: _clientPlayerStr,
		ActiveTime:      _activeTime,
	}
}

// NewGlobalPlayer2 新建GlobalPlayer对象
func NewGlobalPlayer2() *GlobalPlayer {
	return &GlobalPlayer{}
}

// GetHeadPicId 获取玩家 HeadPicId
func (g *GlobalPlayer) GetHeadPicId() int {
	baseInfo := new(BaseInfo)
	err := json.Unmarshal([]byte(g.BaseInfo), baseInfo)
	if err != nil {
		return 0
	}
	return baseInfo.HeadPicId
}

type BaseInfo struct {
	CombatModelId int
	FashionLevel  int
	BannerInfo    string
	Logo          string
	HeadPicId     int
}
